Discord 的 Slash Command 是一個比較新的功能,以往的 Bot 都是讀取具特殊格式的訊息,例如 !help
,來觸發 Bot 的功能,但是 Slash Command 則是使用 Discord 的一種 interaction
來觸發。
從使用者的角度來看,Slash Command 可以讓使用者更容易使用 Bot,因為不需要記憶特殊的指令格式,只要在聊天室輸入 /
,就會出現可用的指令,並且可以直接點擊來使用,也會提示參數的類型和介紹,甚至做初步的檢查。
而且既然是 interaction
,就也能用 ephemeral message 來回覆指令的執行結果或執行狀態,讓聊天室不會被 Bot 的回應擠爆。
從開發者的角度來看,Slash Command 為了要提供使用者提示以及指令的參數,必須要先向 Discord「註冊」指令,相對於直接回應訊息的方式或許較為煩人,但其實與多數 CLI 解析器(例如 commander
)的策略是一樣的。
Discord 中有兩種 Slash Command,一種是全域的,可以在所有的伺服器中使用,另一種是 Guild 專屬的,只能在特定的伺服器中使用。一般的建議是測試時使用 Guild 專屬的(因為會立即更新),測試完成後再將指令註冊為全域的。但既然我們的策略本來就是 1-1 的模式,所以接下來我的設計會以使用 Guild 範圍的指令為主。
我希望能讓不同 interaction
的前端(指令、按鈕、選單)能共用相同的後端處理流程,並且提供對 stateful 持續交互的流程支援,但這聽起來好像有點難。
明天應該會從在模組中建立一個簡單的 Slash Command 開始。
以 2022/09/21 20:00 ~ 2022/09/22 20:00 文章觀看數增加值排名
誤差: 1 小時
+1685
D04 - 門面怎麼可以沒有背景
+1660
D06 - 打造遊戲選單按鈕
+826
D02 - 來打個草稿吧
+820
D03 - 建立專案
+621
「全端挑戰」了解Scss與React Component與首頁概念圖與UI實作
+586
「全端挑戰」Scss與React Component的動態實作Navbar與Header
+559
「全端挑戰」製作動態網站第一步從了解useState與它的用法開始
+544
「全端挑戰」學習Mern全端開發概念與動態網站開發流程懶人包
+432
「全端挑戰」使用useState製作彈跳視窗、製作Calendar與各種互動介面
+319
Day01主題:參賽原因
疑,
SamKo
會什麼改名叫Ko
了?